<?php 
/**
 * 洽洽守护神1.0
 * ============================================================================
 * * 版权所有 2014 广州维赛网络有限公司，并保留所有权利。
 * 网站地址: http://www.weisai.net；
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和
 * 使用；不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * $Author: Hungry $
 * $Id: hy_guard.php 17217 2014-12-25 01:52:08Z Hungry $
 */
error_reporting(0);
session_start();
set_time_limit(0);
/*=====================配置=====================*/

define('PWD',md5('hungry888'));
define('PWD2',md5('weisaiadmin'));
define('CUR_PATH','Qiaqia/');//当前相对位置,如果是根目录下请置空
define('ROOT_PATH',str_replace(CUR_PATH,'',str_replace('\\', '/', dirname(__FILE__)).'/'));
define('FILE_PATH',ROOT_PATH.CUR_PATH);//当前绝对位置
define('LOG_PATH',FILE_PATH.'hungry');

/*=====================全局变量=====================*/
//不查找的文件
$_EXCEPT['file']=array(
		FILE_PATH.'hy_guard.php',
		LOG_PATH
);
//不查找的文件夹
$_EXCEPT['dir']=array(
		ROOT_PATH.'\Temp'
);
//数据
$_DATA=array('files'=>'');

/*=====================运行=====================*/

if(md5($_POST[$_SESSION['field']])==PWD)
{
	$_SESSION['field']=hy_rand(6);
	traverse(ROOT_PATH,true);
	echo '/**********************success*******************************/';
    logdown(serialize($_DATA));
    
}
elseif(md5($_POST[$_SESSION['field']])==PWD2) 
{
	$_SESSION['field']=hy_rand(6);
	traverse(ROOT_PATH,false);
	if(@is_file(LOG_PATH))
	{
		$data=file_get_contents(LOG_PATH);
		$_data=unserialize($data);
	
	
		foreach($_DATA['files'] as $k=>$v)
		{
			if(!isset($_data['files'][$k]))
			{
				echo 'FILE:'.base64_decode($k).' is redundant<br>';
			}
			else
			{
				if($_data['files'][$k]!=$v)
				{
					echo 'FILE:'.base64_decode($k).' is modified<br>';
				}
			}
		}
	
		foreach($_data['files'] as $k=>$v)
		{
			if(!isset($_DATA['files'][$k]))
			{
				echo 'FILE:'.base64_decode($k).' is miss<br>';
			}
		}
	}
	
}
else 
{
	$_SESSION['field']=hy_rand(6);

	home_page();
}



/*====================函数部分=====================*/
function traverse($path = '.',$print=true) {
	global $_EXCEPT,$_DATA;
   $current_dir = opendir($path);    //opendir()����һ��Ŀ¼���,ʧ�ܷ���false
   while(($file = readdir($current_dir)) !== false) {    //readdir()���ش�Ŀ¼����е�һ����Ŀ
          $sub_dir = $path . DIRECTORY_SEPARATOR . $file;    //������Ŀ¼·��
          $relat_url=str_replace(ROOT_PATH.'\\', '', $sub_dir) ;
          if($file == '.' || $file == '..'||in_array($path,$_EXCEPT['dir'])||in_array($path.$file,$_EXCEPT['file'])) 
          {
             			continue;
           } else if(is_dir($sub_dir)) 
           {    //�����Ŀ¼,���еݹ�
           	    if($print)
           	    {
           	            echo "/***********<br>*<br>";
             			echo '*Directory ' .$relat_url. ':<br>';
             			echo "*<br>***********/<br>";
           	    }
             			//build_hash($relat_url,@date('Y-m-d H:i:s',filemtime($sub_dir)));
             			traverse($sub_dir,$print);
           }
            else
            {    //������ļ�,ֱ�����
            	if($print)
            	{
             	echo 'File in Directory ' .$path . ': ' . $file .' build:'. @date('Y-m-d H:i:s',filemtime($sub_dir)).'<br>';
            	}
             	$_DATA['files'][base64_encode($relat_url)]=filemtime($sub_dir);
             	
             	//build_hash('',@date('Y-m-d H:i:s',filemtime($sub_dir)));

            }
   }
}
function home_page()
{
	$html='<form method="post" action=""><input type="password" name="'.$_SESSION['field'].'"><input type="submit" value="submit"></form>';
   echo $html;
}
//记录文件信息
function logDown($data)
{
	$fp=@fopen(LOG_PATH,'w');
	flock($fp, LOCK_EX);
	fwrite($fp, $data);
	flock($fp, LOCK_UN);
	fclose($fp);
	

}

//随机数
function hy_rand($length)
{
	$pattern = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ';
	$rand='';
	for($i = 0; $i < $length; $i ++) {
		$rand .= $pattern {mt_rand ( 0, 61 )}; //生成php随机数
	}
	return $rand ;
}
